package com.eurasia.assignment.infrastructure.repository;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.eurasia.assignment.infrastructure.entity.ProjectEntity;

/**
 * 项目数据访问接口
 */
@Repository
public interface ProjectRepository extends JpaRepository<ProjectEntity, Long> {
    
    /**
     * 根据项目名称查找项目
     * @param name 项目名称
     * @return 是否存在
     */
    boolean existsByName(String name);

    /**
     * 根据名称和类型查询项目
     */
    Page<ProjectEntity> findByNameContainingAndType(String name, String type, Pageable pageable);
    
    /**
     * 根据名称查询项目
     */
    Page<ProjectEntity> findByNameContaining(String name, Pageable pageable);
    
    /**
     * 根据类型查询项目
     */
    Page<ProjectEntity> findByType(String type, Pageable pageable);
} 